時間過得很快,又到了一年一度的 IT 鐵人賽,這一次要寫的題目是在這 30 天內介紹和使用Docker。
介紹 Docker 的主要原因,有以下幾點:
在安裝一些service時常常會遇到作業系統版本不同、Kernel不同、環境變數設定沒設定或是設定檔沒設定正確…等,而造成 service 無法正常的啟動起來,會花費很多的時間在 trial and error 而造成工作的效率變差。
如果在程式的撰寫過程中需要有多個測試環境,例如測試不同版本的 service 是否能在我們撰寫的 code 上正常的執行。如果把這個 service直接安裝在自已的作業系統環境上,需要換版本測試時會反覆的安裝和解安裝,容易因為沒有解安裝完整,舊版的檔案還存在。而造成版本混亂service 也就無法正常的啟動起來。
如果在開發一個 open source 的專案,如果希望要給很多人來使用,那就需要有一個簡單的安裝方法。像是可以把開發完的程式包成 docker image 然後放到 docker hub上,使用者如果想要使用,只要下幾行 command 就可以把我們開發的程式執行起來了。
以上的幾個問題在 Docker 出現之後,就可以用最簡單的指令將程式執行起來,然後可以依照不同的版本做程式的切換,如果在測試完成之後不要使用這些程式可以很快速的刪除掉。可以把不同版本的程式隔離開來,解決不同版本之間的衝突。
這就是使用 Docker 好處所在。 但是會有人問那跟使用 VM 和使用 Docker 之間的差別在哪?
以下列出 VM 和 Docker 的差異
VirtualBox:
Docker:
Docker 和 VM 不只可以單獨的使用,也可以搭配的拿來使用。要確保整體系統完整的虛擬化就先用 VM 安裝作業系統,然後在 VM 的作業系統上使用 Docker 啟動需要執行的 container。這可以按照使用者的使用情境決定要如何的安排使用 VM 和 Docker。
以下的 Demo是如何透過 Docker 快速的把 Nginx Service ( Nginx 是一個 Web Server 的 service) 執行起來:
1.在有安裝Docker的機器上執行以下的指令
# docker run -d -p 80:80 nginx
2.執行的 console 如下圖
3.打開 Browser 輸入 http://localhost ,就可以看到如下的畫面
以上只要輸入一個指令就可以把 Nginx Service 執行起來,可以看出使用 Docker 的簡單性和方便性,上面docker run的指令會在未來 30 天內為大家介紹。
這 30 天預計要介紹有關於 Docker 的內容如下:
It's time to spend time learning docker~
Docker 是一個很值得學習的工具。
覺得這篇文章寫得很好,清楚介紹 Docker 和 VM 的差異,我剛剛也看到一篇文章深入針對 Docker基本慨念與容器與虛擬機比較。這裡推薦給大家 Docker 是什麼?Docker 基本觀念介紹與容器和虛擬機的比較